]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
[StWidget] add API support for right-to-left UI
authorAbderrahim Kitouni <a.kitouni@gmail.com>
Sat, 14 Nov 2009 17:20:31 +0000 (18:20 +0100)
committerDan Winship <danw@gnome.org>
Mon, 16 Nov 2009 16:46:09 +0000 (11:46 -0500)
https://bugzilla.gnome.org/show_bug.cgi?id=584662

src/st/st-widget.c
src/st/st-widget.h

index d606497d52918311cf8284feb177c4fb07abcf52..482d5c04ab60c2919adfe5aa1eb0ff24ab17c14a 100644 (file)
@@ -66,6 +66,8 @@ struct _StWidgetPrivate
   gboolean      draw_border_internal : 1;
 
   StTooltip    *tooltip;
+
+  StTextDirection   direction;
 };
 
 /**
@@ -1272,6 +1274,40 @@ st_widget_ensure_style (StWidget *widget)
     st_widget_recompute_style (widget, NULL);
 }
 
+static StTextDirection default_direction = ST_TEXT_DIRECTION_LTR;
+
+StTextDirection
+st_widget_get_default_direction (void)
+{
+  return default_direction;
+}
+
+void
+st_widget_set_default_direction (StTextDirection dir)
+{
+  g_return_if_fail (dir != ST_TEXT_DIRECTION_NONE);
+
+  default_direction = dir;
+}
+
+StTextDirection
+st_widget_get_direction (StWidget *self)
+{
+  g_return_val_if_fail (ST_IS_WIDGET (self), ST_TEXT_DIRECTION_LTR);
+
+  if (self->priv->direction != ST_TEXT_DIRECTION_NONE)
+    return self->priv->direction;
+  else
+    return default_direction;
+}
+
+void
+st_widget_set_direction (StWidget *self, StTextDirection dir)
+{
+  g_return_if_fail (ST_IS_WIDGET (self));
+  self->priv->direction = dir;
+}
+
 /**
  * st_widget_get_border_image:
  * @actor: A #StWidget
index 66f7b0698707521b50957dfd1f5f6adb9050bd33..bebe286206039d24d554208112f4a01e0f894373 100644 (file)
 
 G_BEGIN_DECLS
 
+typedef enum {
+  ST_TEXT_DIRECTION_NONE,
+  ST_TEXT_DIRECTION_LTR,
+  ST_TEXT_DIRECTION_RTL
+} StTextDirection;
+
 #define ST_TYPE_WIDGET                 (st_widget_get_type ())
 #define ST_WIDGET(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_WIDGET, StWidget))
 #define ST_IS_WIDGET(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_WIDGET))
@@ -103,6 +109,11 @@ void st_widget_hide_tooltip (StWidget *widget);
 
 void st_widget_ensure_style (StWidget *widget);
 
+StTextDirection st_widget_get_default_direction (void);
+void st_widget_set_default_direction (StTextDirection dir);
+
+StTextDirection st_widget_get_direction (StWidget *self);
+void st_widget_set_direction (StWidget *self, StTextDirection dir);
 
 /* Only to be used by sub-classes of StWidget */
 void          st_widget_style_changed        (StWidget  *widget);